public class ForForExercise2 {
    public static void main(String[] args) {
        /*
        一个数如果恰好等于它的因子之和，这个数就称为"完数"。（因子：除去这个数本身的约数）
        例如6=1＋2＋3.编程 找出1000以内的所有完数
        6的约数：1,2,3,6
        6的因子：1,2,3

        数字 i，它的因子怎么找？
        for(int j=1; j<i; j++){
            if(i%j==0){
                j是i的因子
            }
        }
         */

        /*for(int i=1; i<1000; i++){
            int sum = 0;//当i变化时，sum归零。
            for(int j=1; j<i; j++){
                if(i%j==0){
                    sum+=j;//j是i的因子
                }
            }
            //sum是i的所有因子之和
            if(sum == i){
                System.out.println(i);
            }
        }*/

        for(int i=1; i<1000; i++){
            int sum = 0;//当i变化时，sum归零。
            for(int j=1; j<=i/2; j++){
                if(i%j==0){
                    sum+=j;//j是i的因子
                }
            }
            //sum是i的所有因子之和
            if(sum == i){
                System.out.println(i);
            }
        }
    }
}
